Java Thread.sleep 最短时间
全部标签 我知道Thread.Sleep阻塞了一个线程。但是Task.Delay也会阻塞吗?或者它就像Timer一样使用一个线程来处理所有回调(当不重叠时)?(this问题不包括差异) 最佳答案 MSDN上的文档令人失望,但使用Reflector反编译Task.Delay可提供更多信息:publicstaticTaskDelay(intmillisecondsDelay,CancellationTokencancellationToken){if(millisecondsDelay基本上,这个方法只是一个包裹在任务中的计时器。所以是的,您可以
我有一个方法应该延迟指定的时间运行。我应该使用Threadthread=newThread(()=>{Thread.Sleep(millisecond);action();});thread.IsBackground=true;thread.Start();或者Timertimer=newTimer(o=>action(),null,millisecond,-1);我读过一些articles关于如何使用Thread.Sleep是糟糕的设计。但我真的不明白为什么。但是,为了使用Timer,Timer有一个dispose方法。由于执行延迟,我不知道如何处理Timer。你有什么建议吗?或者,
我有一个方法应该延迟指定的时间运行。我应该使用Threadthread=newThread(()=>{Thread.Sleep(millisecond);action();});thread.IsBackground=true;thread.Start();或者Timertimer=newTimer(o=>action(),null,millisecond,-1);我读过一些articles关于如何使用Thread.Sleep是糟糕的设计。但我真的不明白为什么。但是,为了使用Timer,Timer有一个dispose方法。由于执行延迟,我不知道如何处理Timer。你有什么建议吗?或者,
我有一个处理大量数据的高性能应用程序。它在很短的时间内接收、分析和丢弃大量信息。这会导致我目前正在尝试优化的大量对象流失,但它也会导致次要问题。当垃圾收集启动时,它会在清理时造成一些长时间的延迟(我指的是10到100毫秒)。99%的时间这是可以接受的,但是对于大约1-2分钟的短暂时间窗口,我需要绝对确保垃圾收集不会导致延迟。我事先知道这些时间段何时会发生,我只需要一种方法来确保在此期间不会发生垃圾收集。该应用程序是使用.NET4.0Framework以C#编写的,并且在需要时同时使用托管和非托管代码。我的问题是;是否可以为整个程序短暂暂停垃圾收集?是否可以使用System.GC.Col
我有一个处理大量数据的高性能应用程序。它在很短的时间内接收、分析和丢弃大量信息。这会导致我目前正在尝试优化的大量对象流失,但它也会导致次要问题。当垃圾收集启动时,它会在清理时造成一些长时间的延迟(我指的是10到100毫秒)。99%的时间这是可以接受的,但是对于大约1-2分钟的短暂时间窗口,我需要绝对确保垃圾收集不会导致延迟。我事先知道这些时间段何时会发生,我只需要一种方法来确保在此期间不会发生垃圾收集。该应用程序是使用.NET4.0Framework以C#编写的,并且在需要时同时使用托管和非托管代码。我的问题是;是否可以为整个程序短暂暂停垃圾收集?是否可以使用System.GC.Col
是否有效SpinWait.SpinUntil(()=>myPredicate(),10000)超时为10000毫秒或同样的条件使用Thread.Sleep轮询是否效率更高例如,类似于以下SleepWait函数的内容:publicboolSleepWait(inttimeOut){Stopwatchstopwatch=newStopwatch();stopwatch.Start();while(!myPredicate()&&stopwatch.ElapsedMilliseconds我担心如果我们谈论超过1秒的超时,SpinWait的所有产生可能不是一个好的使用模式?这是一个有效的假设吗
是否有效SpinWait.SpinUntil(()=>myPredicate(),10000)超时为10000毫秒或同样的条件使用Thread.Sleep轮询是否效率更高例如,类似于以下SleepWait函数的内容:publicboolSleepWait(inttimeOut){Stopwatchstopwatch=newStopwatch();stopwatch.Start();while(!myPredicate()&&stopwatch.ElapsedMilliseconds我担心如果我们谈论超过1秒的超时,SpinWait的所有产生可能不是一个好的使用模式?这是一个有效的假设吗
Thread.Sleep.NET似乎不支持Windows应用商店应用程序。比如这个System.Threading.Thread.Sleep(1000);将在以任何.NETFramework(2.0、3.5、4.0、4.5)为目标时进行编译,但在以.NET为Windows应用商店应用程序(或以4.5和商店为目标的可移植类库)时则不会。System.Threading.Thread仍然存在,只是没有Sleep方法。我需要在我的应用程序中延迟几秒钟,是否有合适的替代品?编辑为什么需要延迟:我的应用程序是一款游戏,延迟是为了让计算机对手看起来像是在“思考”他的下一步行动。该方法已经被异步调用
Thread.Sleep.NET似乎不支持Windows应用商店应用程序。比如这个System.Threading.Thread.Sleep(1000);将在以任何.NETFramework(2.0、3.5、4.0、4.5)为目标时进行编译,但在以.NET为Windows应用商店应用程序(或以4.5和商店为目标的可移植类库)时则不会。System.Threading.Thread仍然存在,只是没有Sleep方法。我需要在我的应用程序中延迟几秒钟,是否有合适的替代品?编辑为什么需要延迟:我的应用程序是一款游戏,延迟是为了让计算机对手看起来像是在“思考”他的下一步行动。该方法已经被异步调用
我经常看到它提到不应该使用Thread.Sleep();,但我不明白为什么会这样。如果Thread.Sleep();会引起麻烦,是否有任何替代解决方案具有相同的结果且安全?例如。while(true){doSomework();i++;Thread.Sleep(5000);}另一个是:while(true){string[]images=Directory.GetFiles(@"C:\Dir","*.png");foreach(stringimageinimages){this.Invoke(()=>this.Enabled=true);pictureBox1.Image=newBit